Visualization of Query Results in Relation to a Map

ABSTRACT

A method is provided for visualizing query results in relation to a map. The method includes: specifying a geographic location of interest around which query results are to be clustered; querying a data source using a search query; constraining entities that satisfy the search query to form a subset of entities having a predefined number of entities that are geographically proximate to the specified location of interest; displaying an indicia for each of the entities in the subset of entities in a content area of a display; displaying a map of a geographic area on the display, where the geographic area includes the specified location of interest; and designating a boundary on the map whereby each of the entities in the subset of entities reside in the boundary and other entities that satisfy the search query reside outside the boundary.

FIELD

The present disclosure relates to visualization of query results in relation to a map.

BACKGROUND

Technology for displaying query results on a map is generally known. For example, various websites enable users to search for retailers located in an area of interest, such as in a city or proximate to a specified zip code. Search results are in turn displayed to the user. The search results will typically include a listing of the retailers that satisfy the search query along with a map of the area of interest. For retailers that satisfy the search query and fall within the boundary of the map, an indicia for such retailers may be displayed on the map. Due to space constraints of the display, the entire listing of retailers is not presented but rather a subset of the retailers is presented at any given time in the display area. Consequently, the number of retailers displayed from the listing of retailers does not correspond to the number of retailers indicated on the map.

Therefore, it is desirable to develop a more intuitive manner in which to visualize query results in relation to a map. This section provides background information related to the present disclosure which is not necessarily prior art.

SUMMARY

A method is provided for visualizing query results in relation to a map. The method includes: specifying a geographic location of interest around which query results are to be clustered; querying a data source using a search query; constraining entities that satisfy the search query to form a subset of entities having a predefined number of entities that are geographically proximate to the specified location of interest; displaying an indicia for each of the entities in the subset of entities in a content area of a display; displaying a map of a geographic area on the display, where the geographic area includes the specified location of interest; and designating a boundary on the map whereby each of the entities in the subset of entities reside in the boundary and other entities that satisfy the search query reside outside the boundary.

This section provides a general summary of the disclosure, and is not a comprehensive disclosure of its full scope or all of its features. Further areas of applicability will become apparent from the description provided herein. The description and specific examples in this summary are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.

DRAWINGS

FIG. 1 is a diagram of a system for visualizing query results in relation to a map;

FIG. 2 is a flowchart depicting a method for visualizing query results in relation to a map;

FIG. 3A is an exemplary display of a query tool illustrating a boundary on a map encircling the entities shown in the content area of the display;

FIG. 3B is another exemplary display for the query tool;

FIG. 4A is an exemplary display of the query tool illustrating the user reducing the number of entities shown in the content area of the display;

FIG. 4B is an exemplary display of the query tool illustrating the user increasing the number of entities shown in the content area of the display;

FIG. 5A is an exemplary display of the query tool illustrating the user reducing the area encompassed by the boundary on the map;

FIG. 5B is an exemplary display of the query tool illustrating the user reducing the area encompassed by the boundary on the map;

FIGS. 6A-6C are exemplary displays of the query tool illustrating a scrollable listing of entities that satisfy a search query;

FIG. 7 is an exemplary display of the query tool illustrating the user changing the geographic location of interest;

FIG. 8 is an exemplary display of the query tool illustrating graduated boundaries for the area of interest;

FIGS. 9A-9C illustrate an alternative embodiment for how the user could change the geographic location of interest;

FIGS. 10A and 10B illustrate another embodiment for how the user could change the geographic location of interest;

FIGS. 11A and 11B depict a coordinated visualization amongst multiple locations of interest on a display of the query tool; and

FIG. 12 is a functional block diagram for an exemplary embodiment of the query tool.

The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure. Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings.

DETAILED DESCRIPTION

With reference to FIG. 1, a system for visualizing query results in relation to a map is provided and is generally referred to as system 10. The system 10 is comprised of a query tool 12, a content database 13, and a map database 14. In an exemplary embodiment, the query tool 12 is a computer software program (i.e., computer executable instructions) executed by a processor of a computing device 16. The computing device 16 may employ a conventional computer architecture having a central processing unit (CPU), a random access memory, and other types of data stores coupled to a data bus. The computing device may further include one or more user interface components, such as a display, keyboard or touchscreen, as well as an input/output (I/O) module to facilitate communication with external devices via any suitable means such as wired connection or wireless connection. Computing devices with other types of components and/or architectures are also contemplated by this disclosure.

The query tool 12 may be used to query the content database 13. For example, the user may be searching for retailers located in a particular geographic area of interest. When formulating criteria for the query, the user will specify a geographic location of interest. In an exemplary embodiment, the user may specify a city and/or a zip code. Alternatively, the user's computing device may be equipped with a global positioning system (GPS). In this case, the current global coordinates as reported by the GPS may be used to form the search criteria. Other types of indicators for the geographic location of interest are also contemplated. In any case, the query tool receives an indicator for a geographic location of interest to use in the search query. It is readily understood that the indicator for the geographic area of interest may be combined with other search criteria when forming the search query.

The query tool will then query the content database 13 using the search criteria. The content database 13 contains the content to be searched. In this example, the content database contains a listing of retailers. Search results will be displayed in relation to a map as shown in FIG. 3A. An exemplary display 30 is partitioned into different areas, including a content area 32 and a map area 34. In the content area, a listing of the content that satisfies the search query or a subset thereof is displayed. In the case of a search for retailers, contact information, such as name, address and phone number, may be presented in the listing for each of the retailers that satisfy the search query. In the map area, a map that encompasses the geographic area of interest is displayed.

To provide a more intuitive understanding of the correlation between the content area and the map area, the number of retailers displayed in the content area 32 at a given time will correspond to an area designated on the map in the map area 34. The query tool 12 selects a predefined number of content entities to present in the content area (e.g., 10) although this number may be configurable by the user. In FIG. 3A, indicia for ten (10) entities are presented in the content area 32. On the map, a boundary 36 is designated, such that each of the ten entities reside inside the boundary.

In an exemplary embodiment, the entities displayed are those having the closest geographic proximity to the geographic location of interest. Search results are constrained by the query tool to form a subset of entities having a predefined number of entities, where the predefined number of entities corresponds to the number of entities to be displayed in the content area. For example, the query tool may order the entities that satisfy the search query in accordance with geographic proximity to the specified location of interest (e.g., closest to furthest away) and select the entities closest to the location of interest to form the subset of entities. In other words, the query tool selects the ten entities closest to the specified location of interest. Indicia for each of the entities in the subset of entities are then displayed in the content area of the display. Other criterion for forming the subset of entities is also contemplated by this disclosure.

Based on the search query, the query tool will also query the map database to retrieve a map that includes the specified location of interest. The retrieved map is displayed by the query tool in the map area. The query tool will further designate a boundary on the map, whereby each of the entities in the subset of entities resides in the boundary and other entities that satisfy the search query reside outside the boundary. Thus, the boundary is defined to only encompass the entities in the subset. The number of entities in the subset may also be displayed on the map inside or adjacent to the boundary. In exemplary embodiment, the boundary may be further defined as a circle having a center positioned on the map at or near the geographic location of interest and a circumference aligned with an entity in the subset that is located furthest from the geographic location of interest amongst the entities in the subset. The query tool may optionally display an indicia on the map at the location where each entity in the subset resides on the map.

FIG. 3B illustrates a boundary having an amorphous shape. For example, the boundary may be defined by taking into account changes in elevation from the point of interest. Given the two-dimensional distance to the entity located furthest from the geographic location of interest, the boundary can be defined using the elevation change in any given direction from the geographic location of interest. Thus, a direction having a large amount of elevation change will have a closer boundary than a direction having nominal amount of elevation change. In another example, the boundary may be defined by taking into account the amount of time is takes to drive from the point of interest. Given the time to reach the entity located furthest from the geographic location of interest, remainder of the boundary can be defined at a distance requiring the amount of drive time. Drive time metrics can be obtained from various sources as is known in the art. Other shapes for the boundary as well as other means for computing such shapes are also contemplated by this disclosure.

With reference to FIG. 2, this methodology for visualizing query results as implemented by the query tool is summarized as follows. First, a geographic location of interest around which query results are to be clustered is received or otherwise specified at 21 to the query tool. The geographic location of interest provides at least a portion of a search query constructed by the query tool. The query tool will in turn query the content database or some other data source at 22 using the search query. Entities satisfying the search query are constrained at 23 to form a subset of entities having a predefined number of entities that are geographically proximate to the specified location of interest. Indicia for each of the entities in the subset of entities are displayed at 24 in a content area of a display. In addition, a map is displayed at 25, where the displayed geographic area includes the specified location of interest. A boundary is designated at 26 on the map whereby each of the entities in the first subset of entities reside in the boundary and other entities that satisfy the search query reside outside the boundary. It is to be understood that only the relevant steps of the methodology are discussed in relation to FIG. 2, but that other software-implemented instructions may be needed to control and manage the overall operation of the system.

Presented with search results, it may be desirable for the user to adjust the number of entities presented in the content area. With reference to FIGS. 4A and 4B, the query tool may receive input from the user to decrease or increase the number of entities presented. In FIG. 4A, the user elects to reduce the number of entities presented from 10 to 3; whereas, in FIG. 4B, the user elects to increase the number of entities presented from 10 to 21. In an exemplary embodiment, the user may adjust the number of entities with a touch gesture captured by a touchscreen of the computing device. Alternatively, the user may input a desired radius (e.g., 20 miles) from the specified location of interest. The query tool will in turn determine the number of entities that fall within the desired radius and adjust the display accordingly. As noted above, the query tool select the entities closest to the location of interest to form the subset of entities displayed in the content area. In addition to changing the number of entities displayed in the content area, the boundary on the map is resized to illustrate the area that encompasses the entities displayed in the content area.

In a similar manner, the query tool may receive input from the user to decrease or increase the area encompassed by the boundary on the map as shown in FIGS. 5A and 5B. In FIG. 5A, the user elects to decrease the area; whereas, in FIG. 5B, the user elects to increase the area. In an exemplary embodiment, the user may adjust the area size with a touch gesture captured by a touchscreen of the computing device. Alternatively, the user may input a desired radius (e.g., 20 miles) for the boundary on the map. In either case, the query tool will in turn determine the number of entities that fall within the desired area and adjust the display accordingly. In addition to resizing the boundary on the map, the number of entities displayed in the content area is changed to match the number of entities encompassed by the boundary on the map.

With reference to FIG. 6A-6C, the entities in the content area may be presented in a scrollable listing. In this example, the ten entities closest to the geographic location of interest are presented in the content area. A boundary encompassing each of the entities is designated on the map as discussed above in relation to FIG. 3A. However, the boundary on the map may be modified as the user scrolls through the listing of entities. For example, upon scrolling down the listing, the next ten entities (i.e., entities 11-20) closest to the geographic location of interest may be presented in the content area as shown in FIG. 6B. In one embodiment, the boundary on the map is resized to encompass the twenty entities closest to the geographic location of interest (not shown). The number twenty may be displayed on the map inside or adjacent to the boundary. In another embodiment, the boundary encompassing the first ten entities remains on the map but a second boundary is added to the map as shown in FIG. 6B, where the second boundary encompasses the first twenty entities. The number ten may be displayed on the map inside or adjacent to the second boundary to signify the number of entities encompassed inside the second boundary but outside of the first boundary.

Upon further scrolling, the boundaries on the map may be further modified. For example, the user may scroll down further in the listing to present the next ten entities (i.e., entities 21-30). In this scenario, a third boundary encompassing the entirety of the thirty entities may be added to the map as shown in FIG. 6C. The number ten may be displayed on the map inside or adjacent to the third boundary to signify the number of entities encompassed inside the third boundary but outside of the second boundary. Additionally, the first boundary and/or second may be removed from the map.

Presented with search results, it may be desirable for the user to change the specified geographic location of interest. With reference to FIG. 7, the query tool may receive input from the user to change the specified geographic location of interest. In an exemplary embodiment, the user begins by touching a touchscreen of the computing device to designate a geographic location of interest. For example, the user may touch a point in the state of Washington as indicated at 71 to obtain search results centered around this location of interest. The query tool will in turn determine a predefined number of entities (e.g., 10) located closest to this point of interest and display these entities in the manner described above in relation to FIG. 3A.

For comparison purposes, the user may then touch another point on the map. In this example, the user touches a point in the state of Oklahoma as indicated at 72. The query tool will determine the predefined number of entities located closest to this new point of interest and then display these entities on the display. More specifically, indicia for the entities closest to the new point of interest are presented in the content area and a boundary encompassing these entities is presented on the map. Of note, the boundary encompassing the entities at the first location is retained on the map so that user may compare the size of the two areas. Likewise, the user may identify a third point of interest as indicated at 73 and the query tool will modify the display accordingly. To identify points of interest, the user may elect to slide a finger on the map. In this case, the size of the boundary could be dynamically adjusted to signify the number of entities at a given location. Other techniques for inputting geographic location of interest are also contemplated.

Rather than illustrate a single boundary for a given location of interest, it is understood that graduated boundaries may be presented at each location of interest as shown in FIG. 8. For example, a first boundary encompassing the first twenty five entities (i.e., 1-25), a second boundary encompassing the next twenty five entities (i.e., 26-50), a third boundary encompassing the next twenty five entities (i.e., 51-75), etc. It is readily understood that each boundary may encapsulate increments other than twenty five.

Another embodiment that enables the user to change the geographic location of interest is depicted in FIGS. 9A-9C. In the exemplary embodiment, the user designates a geographic location of interest by touching the touchscreen. Likewise, the user may touch a point in the state of Washington as indicated at 91 of FIG. 9A. The query tool will in turn determine a predefined number of entities (e.g., 10) located closest to this point of interest and display these entities. With reference to FIG. 9B, the user may change the point of interest as indicated at 92. In this embodiment, the user applies gesture motions to the touchscreen to move the map while maintaining the position of the circle on the display. Alternatively, the positioning of the map may be changed using arrow inputs as indicated at 93. At each given location, the size of the circle boundary can be dynamically adjusted to signify the area encompassing the predefined number of entities as seen at 94 in FIG. 9C.

FIGS. 10A and 10B illustrate a related embodiment that enables the user to change the geographic location of interest. In this embodiment, user again designates a geographic location of interest, for example, by touching the touchscreen. For example, the user may touch a point in the state of Washington as indicated at 91 of FIG. 10A. The query tool will in turn determine a predefined number of entities (e.g., 10) located closest to this point of interest and display these entities. Next, the user specifies another geographic location of interest. The second geographic location of interest may be changed by moving the point of interest (as described in relation to FIG. 7), moving the position of the map (as described in relation to FIGS. 9A-9C), or some other means for specifying the location of interest. In any case, the size of the boundary (i.e., circle) remains the same between the two points of interest. Rather, the scale of the map changes between the two views. In this instance, the second location of interest is more densely populated than the first location of interest. Thus, the scale of the map decreases so that the circle encompasses a smaller geographic area as best seen in FIG. 10B.

FIGS. 11A and 11B illustrate another feature supported by the query tool. There may be some desire to coordinate visualization of multiple areas. The user would first specify two locations of interest, for example, by touching the touchscreen. For example, the user may be interested in entities located in both Atlanta and Denver. The query tool will in turn determine a predefined number of entities (e.g., 50) located closest to each point of interest and display a corresponding boundary that encompasses the entities on the map. The display may exclude the content area 32 as shown or may include a content area for each area of interest. It is noted that the size of the circles may vary between the two locations. While only two locations of interest are described, it is understood that the query tool may support visualization for three or more locations of interest.

Presented with two or more areas of interest, the user may modify one or more area for comparison. In one exemplary embodiment, the total number of entities encompassed by the two areas remains fixed (e.g., 100). As the user resizes one of the areas of interest, the size of the other area of interest is adjusted accordingly as shown in FIG. 11B. In this example, when the user decreases the area associated with Denver to include 30 entities, the area associated with Atlanta is increased to encompass 70 entities, thereby maintaining total number of entities displayed at one hundred.

Referring to FIG. 12, the computer programming used to implement embodiments of the query tool and its method will now be discussed. Specifically, this figure shows the software components and manner of programming to effect content searching and visualization of query results in the manner discussed above. The software components may be loaded into memory and are then acted upon by CPU to produce the above-described behaviors. These components may be incorporated into or associated with the operating system of the computing device.

Functional block 100 provides the content searching and visualization of query results functions. This functional block 100 includes a search user interface 102 that supports interactions with the user of the system. The search user interface 102 receives search criteria, including a geographic area of interest, from the user and performs queries of the content database and the map database in accordance with the search query. The search user interface 102 in turn interfaces with a display of the computing device to output the results of the search query. Other types of interactions between the user and system are also supported by the search user interface 102.

Ongoing user interactions with the display are also handled by this functional block. When a user interacts with the map, these interactions are passed on to the on-map operation detecting module 103 for subsequent processing. For example, the changeable area determining module 104 determines when a user is resizing the bounded area on the map (as shown in FIGS. 5A and 5B). Upon detecting an area change, the in-area contents situation determining module 107 can determine the content entities that fall within the new boundary. In another example, the on-map movable current position detecting module 105 determines when the user is changing the specific geographic location of interest (e.g., as shown in FIG. 7). When the location of interest changes, the center-based contents search module 106 performs a new query of the contents database using the new location of interest. Search result from the center-based contents search module 106 are passed along to the in-area contents situation determining module 107 whose function is again to determine content needed for the content area based on the number of entities presently shown in the content area. In either example, given the output from the in-area contents situation determining module 107, the dynamic area visualizing module 108 adjusts the map displayed in the map area; whereas, the dynamic contents situation interfacing 110 adjusts the content displayed in the content area. The on-map operation detecting module 103 may also handle more conventional map interactions such as zooming in or out the displayed map.

When a user interacts with the content area, these interactions are passed on to the in-view operation detecting module 112 for subsequent processing. For example, the changeable content size determining module 114 determines when a user is adjusting the number of content entities presented in the content area (as shown in FIGS. 4A and 4B). Upon detecting a change, the displayable contents counting module 116 determines the number of content entities to present in the content area. In another example, the scroll position determining module 118 determines when a user is scrolling through a listing of content entities (as shown in FIGS. 6A-6C). In either example, the displayable contents situation determining module 120 determines the content needed to update the content area. Given the output from the displayable contents situation determining module 120, the in-view contents displaying module 122 updates the content area; whereas, the dynamic contents situation interfacing 110 adjusts the map accordingly.

The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.

Example embodiments are provided so that this disclosure will be thorough, and will fully convey the scope to those who are skilled in the art. Numerous specific details are set forth such as examples of specific components, devices, and methods, to provide a thorough understanding of embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be employed, that example embodiments may be embodied in many different forms and that neither should be construed to limit the scope of the disclosure. In some example embodiments, well-known processes, well-known device structures, and well-known technologies are not described in detail.

The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. The terms “comprises,” “comprising,” “including,” and “having,” are inclusive and therefore specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed. 

1. A method for visualizing query results in relation to a map, comprising: specifying a first geographic location of interest around which query results are to be clustered; querying a data source using a search query; constraining entities that satisfy the search query to form a subset of entities having a predefined number of entities that are geographically proximate to the first specified location of interest; displaying an indicia for each of the entities in the subset of entities in a content area of a display; displaying a map of a geographic area on the display, where the geographic area includes the first specified location of interest; and designating a first boundary on the map whereby each of the entities in the first subset of entities reside in the boundary and other entities that satisfy the search query reside outside the boundary.
 2. The method of claim 1 wherein the first boundary is further defined as a circle having a center positioned on the map at the first geographic location of interest and a circumference aligned with an entity in the subset located furthest away from the first geographic location of interest.
 3. The method of claim 1 further comprises: specifying a second geographic location of interest around which query results are to be clustered; constraining entities that satisfy the search query to form a second subset of entities having the predefined number of entities and are geographically proximate to the second specified location of interest; and replacing indicia for each of the entities in the first subset of entities in the content area with indicia for each of the entities in the second subset of entities; and designating a second boundary on the map whereby each of the entities in the second subset of entities reside in the second boundary and other entities that satisfy the search query reside outside the second boundary.
 4. The method of claim 3 further comprises specifying the second geographic location of interest with an input to a touch-sensitive display.
 5. The method of claim 1 further comprises changing the boundary on the map to a new boundary in accordance with an input from a user and, in response to the changed boundary, displaying in the content area of the display an indicia for each of the entities that satisfy the search query and reside inside the new boundary.
 6. The method of claim 5 further comprises changing the boundary on the map in accordance with an input to a touch-sensitive display.
 7. The method of claim 1 further comprises changing the number of entities that are displayed in the content area of the display in accordance with an input from a user and resizing the boundary on the map to include the entities displayed in the content area, where the entities displayed in the content area are geographically located nearest to the first specified location of interest from amongst the entities that satisfy the search query.
 8. The method of claim 1 further comprises ordering the entities that satisfy the search query in accordance with proximity of the entities to the first specified location of interest; presenting a scrollable listing of entities that satisfy the search query in the content area; and designating a second boundary on the map in response to an input from a user to scroll through the listing, whereby the second boundary encapsulates the first boundary and includes entities displayed in the content area.
 9. The method of claim 1 further comprises displaying a quantity of the entities in the first subset on the map adjacent to the first boundary.
 10. A method for visualizing query results in relation to a map, comprising: specifying a first geographic location of interest around which query results are to be clustered; querying a data source using a search query; constraining entities that satisfy the search query to form a subset of entities having a predefined number of entities that are geographically proximate to the first specified location of interest; displaying an indicia for each of the entities in the subset of entities in a content area of a display; displaying a map of a geographic area on the display, where the geographic area includes the first specified location of interest; designating a first boundary on the map whereby each of the entities in the first subset of entities reside in the boundary and other entities that satisfy the search query reside outside the boundary; and dynamically adapting the first boundary on the map in accordance with an input from the user specifying a second geographic location of interest.
 11. The method of claim 10 further comprises displaying the map on touch-sensitive display and dynamically adapting the first boundary in accordance with an input from the user to the touch-sensitive display.
 12. The method of claim 10 wherein dynamically adapting the first boundary further comprises: specifying a second geographic location of interest around which query results are to be clustered; constraining entities that satisfy the search query to form a second subset of entities having the predefined number of entities and are geographically proximate to the second specified location of interest; and replacing indicia for each of the entities in the first subset of entities in the content area with indicia for each of the entities in the second subset of entities; and designating a second boundary on the map whereby each of the entities in the second subset of entities reside in the second boundary and other entities that satisfy the search query reside outside the second boundary.
 13. The method of claim 12 wherein the first boundary is further defined as a circle having a center positioned on the map at the first geographic location of interest and a circumference aligned with an entity in the subset located furthest away from the first geographic location of interest.
 14. The method of claim 13 further comprises dynamically adapting the first boundary by resizing the radius of the circle.
 15. The method of claim 10 further comprises displaying a quantity of the entities in the first subset on the map adjacent to the first boundary. 